A typical computer animation system creates the effect of movement or "animation" of objects on a display screen by displaying rectangular-shaped computer graphics (bitmaps) one after another at various time intervals. In many computers, application programs use graphic support software to draw bitmaps to a frame buffer. To give the appearance of movement, the application will draw a new picture into the frame buffer at sufficient intervals to give the appearance of smooth motion of a graphical object. A hardware device called a video controller manages the display of the picture in the frame buffer by periodically refreshing the display screen with the contents of the frame buffer.
Popular operating systems today support windowing environments. This allows application programs running in the computer to display their visual output and receive input through a rectangular portion of the screen called a window. In windowing systems, the operating system typically displays its own interface called the "shell" in one or more windows. In addition to displaying its interface, the operating system includes graphic support software to allow applications to create and display their own windows.
When an application program wishes to create animation in a conventional windowing environment, it draws a sequence of rectangular pictures into a rectangular-shaped window. Each picture or "frame" in the animation typically consists of one or more non-rectangular objects. The graphical objects in a given frame are typically stored in a bitmap. A bitmap is a digital image comprised of a rectangular array of numbers corresponding to individual picture elements (pixels) on the display screen. These data values are commonly referred to as the pixels.
Each of the graphical objects in any given frame of animation are usually stored in separate bitmaps. A graphical object is represented by non-transparent pixels in the bitmap, and the remainder of the bitmap is filled with transparent pixels to make it rectangular. To create this type of file, the non-rectangular shaped object is composited with a rectangular bitmap that is filled with a constant color (the transparent color).
When animating bitmaps within a window of a single hosting application, the host is aware of and can control a background bitmap. In order to display a single frame of the animation, the system composites in memory the known background of the application with the non-transparent pixels of the animation frame. It then displays the composite image on the display device. Repeating this over various time intervals produces computer animation. A key requirement of this technique is that the animation system must always have the background bitmap of the hosting application.
This raises the question of how to animate computer graphics when the background bitmap is not known. Computer game machines such as Nintendo.RTM. and Sega.RTM. use a technique known as multi-plane video. This allows software to act independently on different planes of video while the compositing of the different planes is done very quickly by computer microchips. Standard PC computer systems do not have multi-plane video hardware, and therefore applications cannot take advantage of multi-plane hardware to display animation on an independent video plane.
Without special hardware support, it is difficult to create arbitrary-shaped, interactive animations that play outside of the rectangular window of a host application. As noted above, an application can play back a non-rectangular animation within its own window, but the animation is confined to rectangular window of the application. Another disadvantage is that the host window of the animation, even if it is transparent outside the boundary of the animation, prevents user input from passing through to the windows of other applications on the desktop. Even though portions of the host window of animation may be transparent, the window is still rectangular and responsive to mouse input at locations within the rectangular window.
In the past, PC computer operating systems supported only rectangular windows. The Windows.RTM. 95 Operating System from Microsoft supports "region windows, " which can be non-rectangular in shape. This means that all input from the user to the window and any repainting that the window does is "clipped" to the window's region.